package com.ruoyi.common.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;


@Getter
public enum StatusEnums {
    NO(0,"禁用"),
    YES(1,"已启用");
    @EnumValue
    private final Integer key;
    @JsonValue
    private final String name;

    StatusEnums(Integer key, String name) {
        this.key=key;
        this.name=name;
    }
    // 公共方法，用于获取枚举常量的整数值
    public int getKey() {
        return key;
    }

    // 公共方法，用于获取枚举常量的描述
    public String getName() {
        return name;
    }

    // 可选：静态方法，根据整数值返回对应的枚举常量（如果不存在，则返回null或抛出异常）
    public static StatusEnums fromCode(int code) {
        for (StatusEnums status : StatusEnums.values()) {
            if (status.getKey() == code) {
                return status;
            }
        }
        // 可以选择抛出异常或返回null，这里选择抛出IllegalArgumentException
        throw new IllegalArgumentException("No enum constant with code " + code);
    }

    // 可选：覆盖toString方法，返回描述而不是枚举常量的名称
    @Override
    public String toString() {
        return getName();
    }

}
